package cn.b.sky.shop.activiti.service;

import cn.b.sky.shop.activiti.model.ServiceTest;
import cn.b.sky.shop.activiti.model.SkyService;
import cn.b.sky.shop.activiti.model.condition.SkyServiceCondition;

import java.util.List;

/**
 * 
 * <strong>Title : SkyServiceService.java<br></strong>
 * <strong>Package : cn.b.sky.shop.activiti.service<br></strong>
 * <strong>Description : </strong>服务接口<br> 
 * <strong>Create on : 2015-7-1 下午6:58:34<br></strong>
 * <p>
 * @author lidapeng<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface SkyServiceService {
  /**
   * 
   * <strong>Title : searchService<br></strong>
   * <strong>Description : </strong>服务检索，相关属性封装为ImeServiceCondition<br> 
   * <strong>Create on : 2015-7-2 上午11:20:37<br></strong>
   * <p>
   * @param condition
   * @return
   * List<SkyService>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<SkyService> getService(SkyServiceCondition condition);

  /**
   * 
   * <strong>Title : getServiceCount<br></strong>
   * <strong>Description : </strong>联带检索服务的记录数，用于分页<br> 
   * <strong>Create on : 2015-7-2 上午11:21:10<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public int getServiceCount(SkyServiceCondition condition);

  /**
   * 
   * <strong>Title : getImeServiceById<br></strong>
   * <strong>Description : </strong>通过id查询服务<br> 
   * <strong>Create on : 2015-7-2 上午11:21:48<br></strong>
   * <p>
   * @param id
   * @return
   * SkyService
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public SkyService getImeServiceById(Integer id);

  /**
   * 
   * <strong>Title : saveImeService<br></strong>
   * <strong>Description : </strong>服务的保存<br> 
   * <strong>Create on : 2015-7-2 上午11:22:04<br></strong>
   * <p>
   * @param service
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveImeService(SkyService service);

  /**
   * 
   * <strong>Title : modifyImeService<br></strong>
   * <strong>Description : </strong>服务的修改<br> 
   * <strong>Create on : 2015-7-2 上午11:22:18<br></strong>
   * <p>
   * @param service
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void modifyImeService(SkyService service);

  /**
   * 
   * <strong>Title : getImeServiceAndProcessByServiceId<br></strong>
   * <strong>Description : </strong>通过服务id查询服务以及服务关联的流程<br> 
   * <strong>Create on : 2015-7-6 下午3:36:30<br></strong>
   * <p>
   * @param id
   * @return
   * SkyService
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public SkyService getImeServiceAndProcessByServiceId(Integer id);

  /**
   * 
   * <strong>Title : runImeServie<br></strong>
   * <strong>Description : </strong>测试运行服务<br> 
   * <strong>Create on : 2015-7-8 上午11:21:50<br></strong>
   * <p>
   * @param service
   * @return
   * ServiceTest
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public ServiceTest runImeServie(SkyService service);

  /**
   * 
   * <strong>Title : searchServiceByJson<br></strong>
   * <strong>Description : </strong>condition类型的json字符串条件<br> 
   * <strong>Create on : 2015-7-31 下午1:18:33<br></strong>
   * <p>
   * @param condition
   * @return
   * String
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public String searchServiceByJson(String condition);

  /**
   * 
   * <strong>Title : searchServiceByModelId<br></strong>
   * <strong>Description : </strong>根据流程id查询流程下面配置的服务<br> 
   * <strong>Create on : 2015-7-31 下午4:43:35<br></strong>
   * <p>
   * @param modelId
   * @return
   * List<SkyService>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public List<SkyService> searchServiceByModelId(String modelId);

  /**
   * 
   * <strong>Title : getServiceIdStrByModelId<br></strong>
   * <strong>Description : </strong>获取流程模型下面已被选择的服务的id，组合的字符串<br> 
   * <strong>Create on : 2015-8-4 上午10:24:16<br></strong>
   * <p>
   * @param modelId
   * @return
   * String
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public String getServiceIdStrByModelId(String modelId);

  /**
   * 
   * <strong>Title : saveProcessService<br></strong>
   * <strong>Description : </strong>流程模型分配服务<br> 
   * <strong>Create on : 2015-8-4 下午3:25:15<br></strong>
   * <p>
   * @param modelId
   * @param serviceId
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void saveProcessService(String modelId, String serviceId);

  /**
   * 
   * <strong>Title : removeProcessService<br></strong>
   * <strong>Description : </strong>流程模型删除服务<br> 
   * <strong>Create on : 2015-8-4 下午3:25:34<br></strong>
   * <p>
   * @param modelId
   * @param serviceId
   * void
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  public void deleteProcessService(String modelId, String serviceId);
}
